#include "led.h"
#include "reg.h"
volatile int i = 0x30313233;

void led_delay(uint32_t delay)
{
  uint32_t _delay = delay;
  for (i = 6; i < _delay; i++)
  {
    asm("NOP");
  }
}

// PC13 高电平亮
#define LED_OFF() CLEAR_REG_BIT(0x48000800 + 0X14, 0X01 << 13); // PC13 reset
#define LED_ON() SET_REG_BIT(0x48000800 + 0X14, 0X01 << 13);    // PC13 set
void led_init()
{

  // *(uint32_t*)(RCU_BASE+0x14)|=1<<19 ;//pc clk enable
  SET_REG_BIT(RCU_BASE + 0x14, 1 << 19); // pc clk enable

  // pc13 OUT PUT clk enable 00：GPIO输入模式（复位值）
  // 01：GPIO输出模式
  // 10：备用功能模式
  // 11：模拟模式（输入和输出）
  CLEAR_REG_BIT(0x48000800 + 0, 0X03 << 26);
  SET_REG_BIT(0x48000800 + 0, 0X01 << 26);

  // 上拉模式
  CLEAR_REG_BIT(0x48000800 + 0X0C, 0X03 << 26);
  SET_REG_BIT(0x48000800 + 0X0C, 0X01 << 26);

  LED_ON();
}

void led_flash_loop()
{
  led_init();
  while (1)
  {

    LED_ON();
    led_delay(20000);
    LED_OFF();
    led_delay(20000);

    LED_ON();
    led_delay(20000);
    LED_OFF();
    led_delay(20000);

    led_delay(100000);
  }
}
